package practice1;

import java.util.Scanner;

public class P1002 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();     //B点x轴坐标
        int m=sc.nextInt();     //B点y轴坐标
        int x=sc.nextInt();     //马的x轴坐标
        int y=sc.nextInt();     //马的y轴坐标
        int[][] chs = new int[21][21];      //表示整个棋盘,1-不能走
        //马能走的方式
        int[] xarr = {1,1,-1,-1,2,2,-2,-2};
        int[] yarr = {2,-2,2,-2,1,-1,1,-1};
        chs[x][y]=1;
        //设置不能走的位置
        for(int i=0;i<8;i++){
            if(x+xarr[i]<0 || y+yarr[i]<0){
                continue;   //越界了
            }
            chs[x+xarr[i]][y+yarr[i]]=1;     //表示该位置不能走
        }
        //dp[i][j]表示从(0,0)到(i,j)共有多少种方式
        int[][] dp = new int[n+1][m+1];
        dp[0][0]=1;
        for(int i=0;i<=n;i++){
            for(int j=0;j<=m;j++){
                if(chs[i][j]==1){
                    continue;   //禁着点
                }
                if(i-1<0||j-1<0){
                    dp[i][j]=1;     //边界
                }else {
                    dp[i][j]=dp[i-1][j]+dp[i][j-1];
                }
            }
        }
        System.out.println(dp[n][m]);
    }
}
